#include <stdio.h>
#include <stdlib.h>
#include <string.h>


char *test(int n) {
	char **res = malloc(sizeof(char *) * 5);
	res[0] = malloc(sizeof(char) * 3);	// malloc返回地址0xabcd
	res[0] = "1";	// res[0]的指针值变成了0x1234

	// res[i] = 前一个字符串和它的下标拼接
	for (int i = 1; i < n; i++) {
		res[i] = malloc(sizeof(char) * 10);
		sprintf(res[i], "%s%d", res[i-1], i-1);
		// free(res[i-1]);	// 有问题！！！, 原因是res[i] = "1"，修改了指针值
	}
	return res[n-1];
}

void main()
{
	printf("%s\n",test(5));
}